// axios的封装 为了可以方便的统一的使用axios做数据请求
// axios是原生ajax的封装
import axios from "axios";
import qs from "qs";
// import router from '@/router'
// create an axios instance
// axios.defaults.withCredentials = false;
const service = axios.create({
  withCredentials: false,
  baseURL: "https://huiduji.bigchun.com", // api的base_url
  // baseURL: 'https://f-m.bigchun.com', // 测试
  // baseURL: "https://huiduji.bigchun.com/h5", // 测试

  timeout: 8000, // request timeout
});

// request interceptor
service.interceptors.request.use(
  (config) => {
    // console.log(config);
    if (config.url == "/api/common/upload") {
      config.headers["Content-Type"] = "multipart/form-data";
    }
    return config;
  },
  (error) => {
    // Do something with request error
    console.log(error); // for debug
    Promise.reject(error);
  }
);

// respone interceptor   拦截器
service.interceptors.response.use(
  // response => response,
  /**
   * 下面的注释为通过在response里，自定义code来标示请求状态
   * 当code返回如下情况则说明权限有问题，登出并返回到登录页
   * 如想通过xmlhttprequest来状态码标识 逻辑可写在下面error中
   * 以下代码均为样例，请结合自生需求加以修改，若不需要，则可删除
   */
  (response) => {
    const res = response.data;
    return res;
  },
  (error) => {
    console.log("err" + error); // for debug
    return Promise.reject(error);
  }
);
function http(config) {
  if (config.method.toLowerCase() === "post") {
    if (config.url !== "/api/common/upload") {
      config.data = qs.stringify(config.data, {
        arrayFormat: "repeat",
        allowDots: true,
      });
    }
  } else {
    config.params = config.data;
  }
  return service(config);
}

export default http;
